package com.xjh.basestudy.lanqiaobei.base;

import java.util.*;

public class Sort_ {
    public static void main(String[] args) {
        Integer[] arr = {12, 3, 5, 7, 9, 11, 13, 15};
        Arrays.sort(arr);

        Arrays.sort(arr);//        数组排序（默认升序）
        Arrays.sort(arr, Comparator.reverseOrder());// 降序
        System.out.println(Arrays.toString(arr));
//        使用lambda表达式自定义排序
        Arrays.sort(arr, (a, b) -> a - b); // Lambda 实现升序排序
        a();
    }
    public static void a() {
        /**
         * 三个整数分别为 A,B,C。这三个数字不会按照这样的顺序给你，但它们始终满足条件：A<B<C。为了看起来更加简洁明了，我们希望你可以按照给定的顺序重新排列它们。
         * 【输入格式】
         * 第一行包含三个正整数 A,B,C，不一定是按这个顺序。这三个数字都小于或等于 100。第二行包含三个大写字母 A、B 和 C（它们之间没有空格）表示所需的顺序。
         * 【输出格式】
         * 在一行中输出 A，B 和 C，用一个 空格 隔开。
         * */
        Scanner scanner = new Scanner(System.in);

        // 读取三个整数
        Integer[] nums = new Integer[3];
        for (int i = 0; i < 3; i++) {
            nums[i] = scanner.nextInt();
        }

        // 排序
        Arrays.sort(nums, (a, b) -> a - b); // Lambda 实现升序排序,正常

        // 读取顺序字符串
        String order = scanner.next();

        // 映射 A, B, C -> 对应排序后的位置
        Map<Character, Integer> map = new HashMap<>();
        map.put('A', nums[0]); // 最小值
        map.put('B', nums[1]); // 中间值
        map.put('C', nums[2]); // 最大值

        // 根据 order 输出对应数字
        for (int i = 0; i < 3; i++) {
            System.out.print(map.get(order.charAt(i)));
            if (i < 2) System.out.print(" ");
        }


    }
}
